#tf.concat是连接两个矩阵的操作
#tf.concat(concat_dim, values, name='concat')
#除去name参数用以指定该操作的name,与方法有关的一共两个参数
#第一个参数：concat_dim:必须是一个数,表明在哪一维上的连接，
#第二个参数：values：就是两个或者一组待连接的tensors了
# 如果comcat_dim是0，那么在某一个shape的第一个维度上连，对应到实际,就是叠放到列上

import tensorflow as tf

t1 = [[1,2,3],[4,5,6]]
t2 = [[7,8,9],[10,11,12]]
tf.concat(0,[t1,t2]) # ==> [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

#如果concat_dim是1,那么在某一个shape的第二人维度上连
t1 = [[1,2,3],[4,5,6]]
t2 = [[7,8,9],[10,11,12]]
tf.concat(1,[t1,t2])  # ==>[[1,2,3,7,8,9],[4,5,6,10,11,12]]

#如果有更高维,最后连接的依然是指定的那个维度：
#tensor t3 with shape[2,3]
#tensor t4 with shape[2,3]
#tf.shape(tf.concat(0,[t3,t4])) ==> [4,3]
#tf.shape(tf.concat(1,[t3,t4])) ==> [2,6]

#这里要注意的是：如果是两个向量，它们是无法调用的 tf.concat(1,[t1,t2])来连接，因为它们对应的shape只有一个维度，当然不能在第二维上连了，
#虽然实际中两个向量可以在行上相连，但是放在程序里是会报错的，如果要连，必须要调用tf.expand_dims来扩维

t1 = tf.constant([1,2,3])
t2 = tf.constant([4,5,6])
#concated = tf.concat(1,[t1,t2])这样会报错
t1 = tf.expand_dims(tf.constant([1,2,3]),1)
t2 = tf.expanf_dims(tf.constant([4,5,6]),1)
concated = tf.concat(1,[t1,t2])
